home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / basic / hugearr.zip / HUGEGET.C < prev    next >
C/C++ Source or Header  |  1992-04-02  |  2KB  |  87 lines

  1.  
  2. #define NOCOMM
  3. #include <windows.h>
  4. #include <memory.h>
  5.  
  6. #include "hugearr.h"
  7.  
  8. /* Get a huge array element. */
  9. /* VBM: Declare Function VBHugeGet% Lib "hugearr.dll" Alias "VBHugeGet" (ByVal Index%, ByVal el&, buffer As Any) */
  10. int FAR PASCAL
  11. VBHugeGet(int hArray, long element, LPBYTE buffer)
  12.     {
  13.     HPBYTE    ptr;     /* pointer to array element */
  14.     PHUGEDESC pArray;  /* pointer to array descriptor */
  15.  
  16.     DecCheckHandle(hArray);
  17.  
  18.     /* point to proper descriptor */
  19.     pArray = (PHUGEDESC) LocalLock(hLocalMem) + hArray;
  20.  
  21.     CheckNotAllocYet(pArray);
  22.     CheckSubscript(pArray, element, element);
  23.  
  24.     /* calculate pointer to element */
  25.     ptr = (HPBYTE) GlobalLock(pArray -> handle);
  26.  
  27.     /* add offset of element */
  28.     ptr += HugeElementOffset(element, pArray->perseg, pArray->recsize);
  29.  
  30.     /* copy data */
  31.     _fmemcpy(buffer, ptr, pArray -> recsize);
  32.  
  33.     GlobalUnlock(pArray -> handle);
  34.     LocalUnlock(hLocalMem);
  35.     return HA_OK;
  36.     }
  37.  
  38. /* VBM: Declare Function VBHugeGetInt% Lib "hugearr.dll" Alias "VBHugeGetInt" (ByVal hArray%, ByVal el&) */
  39. int FAR PASCAL
  40. VBHugeGetInt(int hArray, long element)
  41.     {
  42.     int retval;
  43.  
  44.     VBHugeGet(hArray, element, (LPBYTE) &retval);
  45.     return retval;
  46.     }
  47.  
  48. /* VBM: Declare Function VBHugeGetLong& Lib "hugearr.dll" Alias "VBHugeGetLong" (ByVal hArray%, ByVal el&) */
  49. long FAR PASCAL
  50. VBHugeGetLong(int hArray, long element)
  51.     {
  52.     long    retval;
  53.  
  54.     VBHugeGet(hArray, element, (LPBYTE) &retval);
  55.     return retval;
  56.     }
  57.  
  58. /* VBM: Declare Function VBHugeGetSingle! Lib "hugearr.dll" Alias "VBHugeGetSingle" (ByVal hArray%, ByVal el&) */
  59. float FAR PASCAL
  60. VBHugeGetSingle(int hArray, long element)
  61.     {
  62.     float retval;
  63.  
  64.     VBHugeGet(hArray, element, (LPBYTE) &retval);
  65.     return retval;
  66.     }
  67.  
  68. /* VBM: Declare Function VBHugeGetDouble# Lib "hugearr.dll" Alias "VBHugeGetDouble" (ByVal hArray%, ByVal el&) */
  69. double FAR PASCAL
  70. VBHugeGetDouble(int hArray, long element)
  71.     {
  72.     double retval;
  73.  
  74.     VBHugeGet(hArray, element, (LPBYTE) &retval);
  75.     return retval;
  76.     }
  77.  
  78. /* VBM: Declare Function VBHugeGetCurrency@ Lib "hugearr.dll" Alias "VBHugeGetCurrency" (ByVal hArray%, ByVal el&) */
  79. currency FAR PASCAL
  80. VBHugeGetCurrency(int hArray, long element)
  81.     {
  82.     currency retval;
  83.  
  84.     VBHugeGet(hArray, element, (LPBYTE) &retval);
  85.     return retval;
  86.     }
  87.